﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Servico.Bovespa.Ordens.Service.ServiceContract;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation
{
    [SinacorServiceBehavior]
    public class OrdemDigitacao : IOrdemDigitacao
    {
        #region IOrdemDigitacao Members

        public bool Inserir(List<Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request.InserirOrdemDigitacao> pListOrdemDigitacao)
        {
            
            return new BusinessLogic.OrdemDigitacao().Inserir(new Translator.TranslateOrdemDigitacao().ToEntity(pListOrdemDigitacao));
                //   TranslationBase<DataContract.Request.OrdemDigitacao, BusinessEntity.OrdemDigitacao>().TranslateToList(pListOrdemDigitacao));            
            
            //return false;
        }

        public List<DataContract.Response.OrdemDigitacaoResponse> ConsultarOrdemDigitacao(DataContract.Request.ConsultarOrdemDigitacao pConsultarOrdemDigitacao)
        {
            Translator.TranslateOrdemDigitacao xl = new Translator.TranslateOrdemDigitacao();

            return xl.ToResponse (
                (new BusinessLogic.OrdemDigitacao()).ConsultarOrdemDigitacao(
                    xl.ToParameter(pConsultarOrdemDigitacao)
                )
            );
        }



        public List<DataContract.Response.OrdemDigitacaoResponse> ConsultarOrdemDigitacaoLote(DataContract.Request.ConsultarOrdemDistribuicaoOrdemLote pConsultarOrdemDigitacaoLote)
        {
            Translator.TranslateOrdemDigitacao xl = new Translator.TranslateOrdemDigitacao();

            return xl.ToResponse(
                (new BusinessLogic.OrdemDigitacao()).ConsultarOrdemDigitacaoLote(
                    xl.ToParameter(pConsultarOrdemDigitacaoLote)
                )
            );
        }

        public bool Excluir(List<DataContract.Request.ExcluirOrdemDigitacao> pListExcluirOrdemDigitacao)
        {
            return new BusinessLogic.OrdemDigitacao().Excluir(
                new Translator.TranslateExcluirOrdemDigitacao().ToEntity(pListExcluirOrdemDigitacao)
            );
        }
        #endregion
    }
}
